/**
 * Copyright (c) 2016 Lenovo Group
 * All Rights Reserved.
 * 
 * Project Name:lmrp-api
 * Create Time: 2016年4月13日 下午2:05:51
 */
package com.lenovo.lmrp.api.eventrecorder;

import java.util.List;
import java.util.Map;

import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;

import com.lenovo.lmrp.api.model.RestResponse;
import com.lenovo.lmrp.api.model.entity.CitygpsPO;
import com.lenovo.lmrp.api.model.view.EngineerRankingVO;
import com.lenovo.lmrp.api.model.view.MapStatisticsVO;

/**
 * @author zhangzheng
 *
 */
@Consumes("application/json;charset-utf-8")
@Produces("application/json;charset-utf-8")
public interface ITicketStatisticsQuery {
    
    /**
     * 城市列表
     * @param itsmcode
     * @return
     */
    @GET
    @Path("/{itsmcode}/statistics/citylist")
    public RestResponse<List<CitygpsPO>> getCityList(@PathParam("itsmcode") String itsmcode);
    
    /**
     * 全国地图统计
     * @param itsmcode
     * @param statisticstype 统计数据类型 0 工单 1 门店  2 服务商 3 工程师
     * @param fields 查询条件
     *          period "2016-01" 按月查  or "2016" 按年查
     *          project 项目名称  支持多个项目 逗号分隔     "itsm项目,联邦项目,..."
     * @return
     */
    @POST
    @Path("/{itsmcode}/statistics/allmap/{statisticstype}")
    public RestResponse<List<MapStatisticsVO>> statisticsByAll(@PathParam("itsmcode") String itsmcode,
                                                            @PathParam("statisticstype") int statisticstype,
                                                            Map<String, String> fields);
    /**
     * 按城市统计
     * @param itsmcode
     * @param fields 查询条件集合  
 *          period 时间  "2016-01" 按月查  or "2016" 按年查
     *      project 项目名称  支持多个项目 逗号分隔     "itsm项目,联邦项目,..."
     *      city 选择的市名称   北京
     * @return
     */
    @POST
    @Path("/{itsmcode}/statistics/citymap/")
    public RestResponse<List<MapStatisticsVO>> statisticsByCity(@PathParam("itsmcode") String itsmcode,
                                                                Map<String, String> fields);
    
    /**
     * 按区域(经纬度)统计
     * @param itsmcode
     * @param fields
     *      period 时间  "2016-01"(by month) or "2016"(by year)
     *      project 项目名称  支持多个项目 逗号分隔     "itsm项目,联邦项目,..."
     *      positionleft 选择区域的左上角坐标  "经度,纬度"
     *      positionright 选择区域的右下角坐标 "经度,纬度"
     * @return
     */
    
    @POST
    @Path("/{itsmcode}/statistics/regionmap/") 
    public RestResponse<List<MapStatisticsVO>> statisticsByRegion(@PathParam("itsmcode") String itsmcode,
                                                                  Map<String, String> fields);

    /**
     * 工程师超赞工单排名
     * @param itsmcode
     * @param fields
     *          period 时间 "2016-01"(by month) or "2016"(by year)
     * @return
     */
    @POST
    @Path("/{itsmcode}/statistics/engineer/ranking/{engineerid}/")
    public RestResponse<List<EngineerRankingVO>> engineerRankingByEvaluate(@PathParam("itsmcode") String itsmcode,
                                                                           @PathParam("engineerid") String engineerid,
                                                                     Map<String,String> fields);
}
